#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;	

//template<class ...Args>
//void Print(Args&&... args) {
//	cout << sizeof...(args) << endl;
//}



//void ShowList() {}

//template<class T, class ...Args>
//void ShowList(T&& t, Args&&... args)
//{
//	cout << t << " ";
//	ShowList(forward<Args>(args)...);
//}
//
//template<class ...Args>
//void Print(Args&&... args) {
//	ShowList(forward<Args>(args)...);
//}

//void ShowList() {}
//
//template<class T, class ...Args>
//void ShowList(T t, Args... args)
//{
//	cout << t << " ";
//	ShowList(args...);
//}
//
//template<class ...Args>
//void Print(Args... args) {
//	ShowList(args...);
//}
//
//int main()
//{
//	int x = 1;
//	Print(x, 2.5, "Hello");
//	return 0;
//}


template<class T>
const T& getArgs(const T& t)
{
	cout << t << " ";
	return t;
}

template<class ...Args>
void Arguements(Args... args)
{}

template<class ...Args>
void Print(Args... args) {
	Arguements(getArgs(args)...);
}

int main()
{
	int x = 1;
	Print(x, 2.5, "Hello");
	return 0;
}